package com.gitee.mars.marsquickframe.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gitee.mars.marsquickframe.entity.SysDept;
import com.gitee.mars.marsquickframe.request.SysDeptReq;
import com.gitee.mars.marsquickframe.response.vo.DeptDetailVo;
import com.gitee.mars.marsquickframe.response.vo.SysDeptListVo;
import com.gitee.mars.marsquickframe.response.vo.SysDeptTreeVo;

import java.util.List;

/**
 * SysDept 接口
 *
 * @Author wq
 * @Date 2021-02-04
 **/
public interface ISysDeptService extends IService<SysDept> {

    /**
     * 添加部门
     *
     * @param req req
     */
    void add(SysDeptReq req);


    /**
     * 删除部门
     *
     * @param id id
     */
    void delete(Integer id);

    /**
     * 更新部门
     *
     * @param req req
     */
    void update(SysDeptReq req);

    /**
     * 递归查询部门列表
     *
     * @param id       id
     * @param deptName deptName
     * @return 列表
     */
    List<SysDeptListVo> getList(Integer id, String deptName);

    /**
     * 根据部门ID查询部门名称
     *
     * @param deptId 部门ID
     * @return String
     */
    String selectDeptName(Integer deptId);

    /**
     * 树形部门数
     *
     * @return List<SysDeptTreeVo>
     */
    List<SysDeptTreeVo> treeDept();

    /**
     * 查询部门详情
     *
     * @param id ID
     * @return DeptDetailVo
     */
    DeptDetailVo getDeptDetail(Integer id);
}
